#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
示例文件：展示如何从其他模块导入并使用json_translate模块

这个文件演示了从json_translate模块导入和使用各种功能的方法，
包括Excel转JSON、获取商品数据以及读取JSON文件等功能。
"""

# 方法1：从models目录导入json_translate模块
# 注意：这里使用相对导入，因为这个示例文件与models目录在同一级别
from models import json_translate

def example1_convert_excel():
    """示例1：转换Excel文件并保存为JSON"""
    print("\n=== 示例1：转换Excel文件 ===")
    
    # 可以指定自定义路径，先获取默认路径
    script_dir = json_translate.os.path.dirname(json_translate.os.path.abspath(__file__))
    default_excel_path = json_translate.os.path.abspath(
        json_translate.os.path.join(script_dir, '../..', 'data', '商品数据集.xlsx')
    )
    
    success = json_translate.excel_to_json(excel_file_path=default_excel_path)  # 使用默认路径
    
    if success:
        print("✓ Excel转换成功")
    else:
        print("✗ Excel转换失败")

def example2_get_json_data():
    """示例2：获取转换后的JSON数据（不保存文件）"""
    print("\n=== 示例2：获取JSON数据 ===")
    
    # 先获取默认路径
    script_dir = json_translate.os.path.dirname(json_translate.os.path.abspath(__file__))
    default_excel_path = json_translate.os.path.abspath(
        json_translate.os.path.join(script_dir, '../..', 'data', '商品数据集.xlsx')
    )
    
    # 使用excel_to_json函数并启用return_data参数
    success, json_data = json_translate.excel_to_json(
        excel_file_path=default_excel_path,  # 使用默认路径
        return_data=True                     # 启用返回数据
    )
    
    if success and json_data:
        print(f"✓ 获取到JSON数据，共{len(json_data)}条记录")
        # 打印前两条数据作为示例
        print("前两条数据示例:")
        for i, item in enumerate(json_data[:2], 1):
            print(f"  记录{i}: {item}")
    else:
        print("✗ 获取JSON数据失败")

def example3_get_products():
    """示例3：使用便捷函数获取商品数据"""
    print("\n=== 示例3：获取商品数据 ===")
    
    # 使用专为Ali Bao Bao项目设计的便捷函数
    products = json_translate.get_products_json()
    
    if products:
        print(f"✓ 成功获取商品数据，共{len(products)}个商品")
        # 分析并打印商品数据的结构
        if products and isinstance(products, list) and len(products) > 0:
            print("\n商品数据字段:")
            for field in products[0].keys():
                print(f"  - {field}")
    else:
        print("✗ 获取商品数据失败")

def example4_read_json_file():
    """示例4：直接读取JSON文件"""
    print("\n=== 示例4：读取JSON文件 ===")
    
    # 构建JSON文件路径（假设Excel转JSON后文件与Excel同名）
    script_dir = json_translate.os.path.dirname(json_translate.os.path.abspath(__file__))
    json_file_path = json_translate.os.path.abspath(
        json_translate.os.path.join(script_dir, '../..', 'data', '商品数据集.json')
    )
    
    # 直接读取JSON文件
    json_data = json_translate.read_json_file(json_file_path)
    
    if json_data:
        print(f"✓ 成功读取JSON文件，共{len(json_data)}条记录")
    else:
        print(f"✗ 读取JSON文件失败: {json_file_path}")

def main():
    """主函数，运行所有示例"""
    print("===== JSON转换模块使用示例 =====")
    
    # 运行所有示例
    example1_convert_excel()
    example2_get_json_data()
    example3_get_products()
    example4_read_json_file()
    
    print("\n===== 示例运行完成 =====")

if __name__ == "__main__":
    main()